package AccesoDatos;

import Entidades.Categorias;
import java.util.*;
import java.sql.*;

public class datCategorias {

    private static Categorias Construir(ResultSet tabla) throws Exception {
        Categorias nuevo = new Categorias();
        nuevo.setIdTipoCategoria(tabla.getInt("IdTipoArticulo"));
        nuevo.setDescripcion(tabla.getString("Descripcion"));
        //nuevo.setEstado(tabla.getBoolean("Estado"));
        return nuevo;
    }

    public static int InsertarCategoria(Categorias objCategoria) throws Exception {
        Connection cnn = Conexion.getConexion();
        try {
            //PreparedStatement stm = cnn.prepareStatement("INSERT INTO TipoArticulo(Descripcion) values(?)");
            CallableStatement cstm = cnn.prepareCall("exec IngresarTipoArticulo '" + objCategoria.getDescripcion() + "' ");
            //cstm.registerOutParameter(1, Types.INTEGER);
            //cstm.registerOutParameter(objCategoria.getDescripcion(), Types.VARCHAR);
            //cstm.execute();
            int cont = cstm.executeUpdate();
            return cont;

        } catch (Exception e) {
            throw e;
        } finally {
            cnn.close();
        }
    }

    public static Vector<Categorias> ListaCategoria() throws Exception {
        Connection cnn = Conexion.getConexion();
        try {
            Vector<Categorias> lista = new Vector<Categorias>();
            //Statement stm = cnn.createStatement();
            //ResultSet tabla = stm.executeQuery("select * from TipoArticulo order by Descripcion");
            CallableStatement cstm = cnn.prepareCall("exec ListarCategorias");
            ResultSet tabla = cstm.executeQuery();
            while (tabla.next()) {
                lista.add(Construir(tabla));
            }
            return lista;
        } catch (Exception e) {
            throw e;
        } finally {
            cnn.close();
        }

    }

    public static Categorias BuscaNombreProducto(int id) throws Exception {
        Connection cnn = Conexion.getConexion();
        try {
            Categorias objeto = new Categorias();
            Statement stm = cnn.createStatement();
            //CallableStatement cstm = cnn.prepareCall("exec BuscaNombreProducto " + id + " ");
            ResultSet tabla = stm.executeQuery("SELECT * FROM TipoArticulo where IdTipoArticulo=" + id + " and Estado='true'");
            //ResultSet tabla = cstm.executeQuery();
            if (tabla.next()) {
                objeto = Construir(tabla);
                return objeto;
            } else {
                return null;
            }
        } catch (Exception ex) {
            throw ex;
        } finally {
            cnn.close();
        }
    }
}